<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Fournisseur extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('fournisseur_model');
    }

    function index() {
        $fournisseurs = $this->fournisseur_model->getList();

        $data = array(
            'fournisseurs' => $fournisseurs
        );

        $this->layout
                ->title('Mes fournisseurs')
                ->js('functions')
                ->js('controllers/fournisseur')
                ->js('controllers/adresse')
                ->js('controllers/bon_de_commande')
                ->js('controllers/detail_commande')
                ->view('fournisseur/index', $data);
    }

    public function table() {
        $fournisseurs = $this->fournisseur_model->getList();
        return json_encode($fournisseurs);
    }

    /*     * *************************************************************************
     * EDIT
     * ************************************************************************ */

    // Create
    public function create() {
        $this->load->view('fournisseur/edit');
    }

    public function createDB() {
        $SOCIETE_NOM = $this->input->get('SOCIETE_NOM');
        $this->fournisseur_model->create($SOCIETE_NOM);
        echo $this->table();
    }

    // Update
    public function update() {
        $SOCIETE_ID = $this->input->get('SOCIETE_ID');
        $fournisseur = $this->fournisseur_model->get($SOCIETE_ID);

        $data = array(
            'fournisseur' => $fournisseur
        );

        $this->load->view('fournisseur/edit', $data);
    }

    public function updateDB() {
        $SOCIETE_ID = $this->input->get('SOCIETE_ID');
        $SOCIETE_NOM = $this->input->get('SOCIETE_NOM');
        $this->fournisseur_model->update($SOCIETE_ID, $SOCIETE_NOM);
        echo $this->table();
    }

    // Delete
    public function delete() {
        $SOCIETE_ID = $this->input->get('SOCIETE_ID');
        $this->fournisseur_model->delete($SOCIETE_ID);
        echo $this->table();
    }

    public function catalogue($idFournisseur) {
        $this->load->library('cart');

        $articles = $this->db
                ->select(array('ARTICLE.ARTICLE_ID', 'ARTICLE.ARTICLE_REF', 'ARTICLE.ARTICLE_LIBELLE', 'SOCIETE_ARTICLE.PRIX_UNITAIRE'))
                ->from('ARTICLE')
                ->join('SOCIETE_ARTICLE', 'ARTICLE.ARTICLE_ID = SOCIETE_ARTICLE.ARTICLE_ID')
                ->where('SOCIETE_ARTICLE.SOCIETE_ID', $idFournisseur)
                ->get()
                ->result()
        ;

        $data['articles'] = $articles;

        $this->layout
                ->title('Catalogue Fournisseur')
                ->js('controllers/catalogue')
                ->view('fournisseur/catalogue', $data);
    }

    public function addToCart() {
        $artId = $this->input->post('articleId');
        $qte = $this->input->post('quantite');

        $this->load->library('cart');

        $article = $this->db->select(array('ARTICLE_REF', 'PRIX_UNITAIRE'))
                ->from('ARTICLE')
                ->join('SOCIETE_ARTICLE', 'SOCIETE_ARTICLE.ARTICLE_ID = ARTICLE.ARTICLE_ID')
                ->where('ARTICLE.ARTICLE_ID', $artId)
                ->get()
                ->result()
        ;

        $article = $article[0];

        $data = array(
            'id' => $artId,
            'qty' => $qte,
            'price' => $article->PRIX_UNITAIRE,
            'name' => $article->ARTICLE_REF
        );
        $this->cart->insert($data);
    }

    public function updateStock() {
        $this->load->library('cart');
        $rowid = $this->input->post('rowid');
        $qte = $this->input->post('quantite');

        $data = array(
            'rowid' => $rowid,
            'qty' => $qte
        );

        $this->cart->update($data);
    }

    public function validerCommande($idFournisseur) {
        $this->load->model('bon_de_commande_model');
        $this->load->model('detail_commande_model');
        
        $this->load->library('cart');
        $contenu = $this->cart->contents();

        if (count($contenu) > 0) {
            $now = time();

            $SOCIETE_ID = $idFournisseur;
            $COMMANDE_DATE = $now;
            $COMMANDE_CLIENT = 0;

            $COMMANDE_ID = $this->bon_de_commande_model->create($SOCIETE_ID, $COMMANDE_DATE, $COMMANDE_CLIENT);

            foreach ($contenu as $key => $COMMANDE_DETAIL) {
                $ARTICLE_ID = $COMMANDE_DETAIL['id'];
                $DETAIL_QUANTITE = $COMMANDE_DETAIL['qty'];
                $PRIX = $COMMANDE_DETAIL['price'];
                $this->detail_commande_model->create($ARTICLE_ID, $COMMANDE_ID, $DETAIL_QUANTITE, $PRIX);
            }
            
            $this->cart->destroy();
        }
    }

}